package client_iot_api_gateway

import (
	context "context"

	github_com_go_courier_courier "github.com/go-courier/courier"
	github_com_go_courier_metax "github.com/go-courier/metax"
)

type CmdCreate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                  `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          CommandDefineCreateData `in:"body"`
}

func (CmdCreate) Path() string {
	return "/iot-api-gateway/v0/dms/productcmd"
}

func (CmdCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdCreate")
	return c.Do(ctx, req, metas...)

}

func (req *CmdCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandDefineCreateResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(CommandDefineCreateResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandDefineCreateResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdDelete struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization   string `in:"header" name:"Authorization" validate:"@string[1,]"`
	CommandDefineID uint64 `in:"query" name:"commandDefineId,string"`
}

func (CmdDelete) Path() string {
	return "/iot-api-gateway/v0/dms/productcmd"
}

func (CmdDelete) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdDelete")
	return c.Do(ctx, req, metas...)

}

func (req *CmdDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdDetail struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 命令定义ID
	CommandDefineID uint64 `in:"query" name:"commandDefineId,string"`
}

func (CmdDetail) Path() string {
	return "/iot-api-gateway/v0/dms/productcmd"
}

func (CmdDetail) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdDetail) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdDetail")
	return c.Do(ctx, req, metas...)

}

func (req *CmdDetail) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandDefineDetailsDB, github_com_go_courier_courier.Metadata, error) {
	resp := new(CommandDefineDetailsDB)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdDetail) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandDefineDetailsDB, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdParamCreate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 参数数据
	Data ParameterDefineCreateData `in:"body"`
}

func (CmdParamCreate) Path() string {
	return "/iot-api-gateway/v0/dms/cmdParam"
}

func (CmdParamCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdParamCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdParamCreate")
	return c.Do(ctx, req, metas...)

}

func (req *CmdParamCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdParamCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdParamDelete struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 命令定义ID
	CmdID uint64 `in:"query" name:"cmdID,string"`
}

func (CmdParamDelete) Path() string {
	return "/iot-api-gateway/v0/dms/cmdParam"
}

func (CmdParamDelete) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdParamDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdParamDelete")
	return c.Do(ctx, req, metas...)

}

func (req *CmdParamDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdParamDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdParamUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 参数数据
	Data ParameterDefineUpdateData `in:"body"`
}

func (CmdParamUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/cmdParam"
}

func (CmdParamUpdate) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdParamUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdParamUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *CmdParamUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdParamUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdSend struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string      `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          CmdSendData `in:"body"`
}

func (CmdSend) Path() string {
	return "/iot-api-gateway/v0/dms/cmd"
}

func (CmdSend) Method() string {
	return "POST"
}

func (req *CmdSend) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdSend")
	return c.Do(ctx, req, metas...)

}

func (req *CmdSend) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *CmdSend) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type CmdUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 命令更新参数
	Data CommandDefineUpdateData `in:"body"`
}

func (CmdUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/productcmd"
}

func (CmdUpdate) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *CmdUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.CmdUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *CmdUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *CmdUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DevciceCount struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 查询时间范围,考虑到js精度,这里传入的单位是毫秒
	QueryTime TimeDuration `in:"query" name:"queryTime,omitempty"`
}

func (DevciceCount) Path() string {
	return "/iot-api-gateway/v0/dms/count"
}

func (DevciceCount) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DevciceCount) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DevciceCount")
	return c.Do(ctx, req, metas...)

}

func (req *DevciceCount) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceCountResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceCountResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DevciceCount) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceCountResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceCreateV2 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string             `in:"header" name:"Authorization" validate:"@string[1,]"`
	Body          DeviceCreateV2Body `in:"body"`
}

func (DeviceCreateV2) Path() string {
	return "/iot-api-gateway/v2/dms/device"
}

func (DeviceCreateV2) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceCreateV2) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceCreateV2")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceCreateV2) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*Device, github_com_go_courier_courier.Metadata, error) {
	resp := new(Device)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceCreateV2) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*Device, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceDelete struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备id
	DeviceID uint64 `in:"query" name:"deviceID,string"`
}

func (DeviceDelete) Path() string {
	return "/iot-api-gateway/v0/dms/device"
}

func (DeviceDelete) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceDelete")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceDetailUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备id
	Data DeviceUpdateData `in:"body"`
}

func (DeviceDetailUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/device"
}

func (DeviceDetailUpdate) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceDetailUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceDetailUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceDetailUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceDetailUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceExtraPropertyCreate struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string            `in:"header" name:"Authorization" validate:"@string[1,]"`
	Body          []DeviceExtraInfo `in:"body"`
}

func (DeviceExtraPropertyCreate) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/extra"
}

func (DeviceExtraPropertyCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceExtraPropertyCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceExtraPropertyCreate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceExtraPropertyCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DevicePropertyExtra, github_com_go_courier_courier.Metadata, error) {
	resp := new([]DevicePropertyExtra)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceExtraPropertyCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DevicePropertyExtra, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceExtraPropertyDelete struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 数量列表
	Body GitQuerycapComToolsDatatypesSFIDs `in:"body"`
}

func (DeviceExtraPropertyDelete) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/extra"
}

func (DeviceExtraPropertyDelete) Method() string {
	return "DELETE"
}

func (req *DeviceExtraPropertyDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceExtraPropertyDelete")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceExtraPropertyDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceExtraPropertyDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceExtraPropertyGet struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (DeviceExtraPropertyGet) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/extra"
}

func (DeviceExtraPropertyGet) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceExtraPropertyGet) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceExtraPropertyGet")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceExtraPropertyGet) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceExtraPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceExtraPropertyGetResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceExtraPropertyGet) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceExtraPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceExtraPropertyPut struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                  `in:"header" name:"Authorization" validate:"@string[1,]"`
	Body          DevicePropertyExtraData `in:"body"`
}

func (DeviceExtraPropertyPut) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/extra"
}

func (DeviceExtraPropertyPut) Method() string {
	return "PUT"
}

func (req *DeviceExtraPropertyPut) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceExtraPropertyPut")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceExtraPropertyPut) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceExtraPropertyPut) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceFixedPropertyCreate struct {
	// 设备ID
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                        `in:"header" name:"Authorization" validate:"@string[1,]"`
	Body          DeviceFixedPropertyCreateBody `in:"body" json:"body,omitempty"`
}

func (DeviceFixedPropertyCreate) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/fixed"
}

func (DeviceFixedPropertyCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceFixedPropertyCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceFixedPropertyCreate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceFixedPropertyCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DevicePropertyFixed, github_com_go_courier_courier.Metadata, error) {
	resp := new([]DevicePropertyFixed)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceFixedPropertyCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DevicePropertyFixed, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceFixedPropertyDelete struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 数量列表
	Body GitQuerycapComToolsDatatypesSFIDs `in:"body"`
}

func (DeviceFixedPropertyDelete) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/fixed"
}

func (DeviceFixedPropertyDelete) Method() string {
	return "DELETE"
}

func (req *DeviceFixedPropertyDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceFixedPropertyDelete")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceFixedPropertyDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceFixedPropertyDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceFixedPropertyGet struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (DeviceFixedPropertyGet) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/fixed"
}

func (DeviceFixedPropertyGet) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceFixedPropertyGet) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceFixedPropertyGet")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceFixedPropertyGet) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceFixedPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceFixedPropertyGetResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceFixedPropertyGet) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceFixedPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceFixedPropertyPut struct {
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                    `in:"header" name:"Authorization" validate:"@string[1,]"`
	Body          DeviceDevicePropertyFixed `in:"body"`
}

func (DeviceFixedPropertyPut) Path() string {
	return "/iot-api-gateway/v2/dms/property/device/:deviceID/fixed"
}

func (DeviceFixedPropertyPut) Method() string {
	return "PUT"
}

func (req *DeviceFixedPropertyPut) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceFixedPropertyPut")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceFixedPropertyPut) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceFixedPropertyPut) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupCount struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                           `in:"header" name:"Authorization" validate:"@string[1,]"`
	GroupId       GitQuerycapComToolsDatatypesSFID `in:"query" name:"groupId"`
}

func (DeviceGroupCount) Path() string {
	return "/iot-api-gateway/v0/dms/org-overview"
}

func (DeviceGroupCount) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceGroupCount) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupCount")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupCount) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*OrgDeviceResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(OrgDeviceResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceGroupCount) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*OrgDeviceResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupCreate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          CreateDeviceGroupData `in:"body"`
}

func (DeviceGroupCreate) Path() string {
	return "/iot-api-gateway/v0/dms/device/group"
}

func (DeviceGroupCreate) Method() string {
	return "POST"
}

func (req *DeviceGroupCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupCreate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceGroupCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupDelete struct {
	// 分组id
	DeviceGroupID uint64 `in:"path" name:"groupID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (DeviceGroupDelete) Path() string {
	return "/iot-api-gateway/v0/dms/device/group/:groupID"
}

func (DeviceGroupDelete) Method() string {
	return "DELETE"
}

func (req *DeviceGroupDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupDelete")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceGroupDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupDeleteDev struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备id数组[]string(uint64)
	DeviceIDs string `in:"query" name:"deviceID"`
}

func (DeviceGroupDeleteDev) Path() string {
	return "/iot-api-gateway/v0/dms/group/devices"
}

func (DeviceGroupDeleteDev) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceGroupDeleteDev) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupDeleteDev")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupDeleteDev) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*BatchOpDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(BatchOpDeviceGroupResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceGroupDeleteDev) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*BatchOpDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupDetail struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 分组ID
	DeviceGroupID uint64 `in:"query" name:"deviceGroupID,string"`
	// 厂商提供的设备号,支持模糊查询
	DeviceUniqueID string `in:"query" name:"deviceUniqueId,omitempty"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,50]"`
}

func (DeviceGroupDetail) Path() string {
	return "/iot-api-gateway/v0/dms/device/group/detail"
}

func (DeviceGroupDetail) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceGroupDetail) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupDetail")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupDetail) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetGroupDeviceResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetGroupDeviceResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceGroupDetail) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetGroupDeviceResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupModify struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 内部设备id(分组查询后返回)
	// 分组ID(填0则是从组内删除)
	DeviceGroupID uint64 `in:"query" name:"deviceGroupID,string"`
	// 设备id
	DeviceID []string `in:"query" name:"deviceID"`
}

func (DeviceGroupModify) Path() string {
	return "/iot-api-gateway/v0/dms/group/devices"
}

func (DeviceGroupModify) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceGroupModify) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupModify")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupModify) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*BatchOpDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(BatchOpDeviceGroupResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceGroupModify) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*BatchOpDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceGroupUpdate struct {
	// 设备分组ID
	DeviceGroupID uint64 `in:"path" name:"groupID,string" validate:"@uint64[1,]"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 分组信息
	Data UpdateDeviceGroupData `in:"body" name:"data,omitempty"`
}

func (DeviceGroupUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/device/group/:groupID"
}

func (DeviceGroupUpdate) Method() string {
	return "PUT"
}

func (req *DeviceGroupUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceGroupUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceGroupUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceGroupUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceHistoryData struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 污染物类型
	CodeType []string `in:"query" name:"codeType,omitempty"`
	// 设备id
	DeviceId uint64 `in:"query" name:"deviceId,string"`
	// 结束时间
	EndTime int64 `in:"query" name:"endTime"`
	// 污染物名称
	Name []string `in:"query" name:"name,omitempty"`
	// 开始时间
	StartTime int64 `in:"query" name:"startTime"`
}

func (DeviceHistoryData) Path() string {
	return "/iot-api-gateway/v0/dms/data/history"
}

func (DeviceHistoryData) Method() string {
	return "GET"
}

// @StatusErr[AuthStrIsEmpty][401999001][未认证]!
// @StatusErr[ISEQueryData][0][解析错误]!
// @StatusErr[InternalServerError][500999001][InternalServerError]
// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
// @StatusErr[LimitTooLarge][500999007][查询数据太大]!
// @StatusErr[ParseFloatErrCode][500999005][解析错误]!
// @StatusErr[ParseUIntErrCode][500999004][解析错误]!
// @StatusErr[QueryDbErr][500999002][数据库查询错误]!
// @StatusErr[TimeOutOfRange][400666017][时间范围太大]!
// @StatusErr[TmplErrCode][500999006][模板错误]!
func (req *DeviceHistoryData) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceHistoryData")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceHistoryData) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*HistoryResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(HistoryResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceHistoryData) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*HistoryResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceList struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 企业征信码
	BusinessCode string `in:"query" name:"businessCode,omitempty"`
	// 设备定义ID
	DeviceDefineID uint64 `in:"query" name:"deviceDefineId,string,omitempty"`
	// 设备名称,支持模糊查询
	DeviceName string `in:"query" name:"deviceName,omitempty"`
	// 设备号,支持模糊查询
	DeviceUniqueID string `in:"query" name:"deviceUniqueId,omitempty"`
	// 默认使用当前选择的组织架构id
	GroupId uint64 `in:"query" name:"groupId,string,omitempty"`
	// 设备节点类型
	NodeType DmsNodeType `in:"query" name:"nodeType,omitempty"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,500]"`
	// 设备标签
	TagInfoList []DeviceTagInfo `in:"query" name:"tagInfoList,omitempty"`
}

func (DeviceList) Path() string {
	return "/iot-api-gateway/v1/dms/device/list/detail"
}

func (DeviceList) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceList) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceList")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceList) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceListResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceListResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceList) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceListResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceMaintain struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备定义ID, 这个决定设备种类,如果是批量查询则需要这个参数
	DeviceDefineID uint64 `in:"query" name:"deviceDefineId,omitempty"`
	// 设备ID, 单设备查询需要设备参数, 这个参数填写了, DeviceDefineID参数不生效
	DeviceID uint64 `in:"query" name:"deviceId,omitempty"`
	// 偏移
	OffSet int64 `in:"query" name:"offSet,omitempty"`
	// 查询时间范围,到当前时间的,单位为纳秒, 比如查询一个小时只内为: 60*60*1000*1000*1000, 为0则查询所有时间
	QueryTime TimeDuration `in:"query" name:"queryTime,omitempty"`
	// 分页大小
	Size int64 `in:"query" name:"size"`
}

func (DeviceMaintain) Path() string {
	return "/iot-api-gateway/v0/dms/device/maintain"
}

func (DeviceMaintain) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceMaintain) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceMaintain")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceMaintain) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceMaintainRecordList, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceMaintainRecordList)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceMaintain) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceMaintainRecordList, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceMaintainCreate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 信息
	Data DeviceMaintainCreateReq `in:"body"`
}

func (DeviceMaintainCreate) Path() string {
	return "/iot-api-gateway/v0/dms/device/maintain"
}

func (DeviceMaintainCreate) Method() string {
	return "POST"
}

func (req *DeviceMaintainCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceMaintainCreate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceMaintainCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceMaintainCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceMnExchange struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 数据
	Data ExchangeMnData `in:"body"`
}

func (DeviceMnExchange) Path() string {
	return "/iot-api-gateway/v0/dms/device-exchange"
}

func (DeviceMnExchange) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceMnExchange) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceMnExchange")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceMnExchange) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ExchangeMnResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(ExchangeMnResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceMnExchange) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ExchangeMnResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceMove struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string         `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          DeviceMoveData `in:"body"`
}

func (DeviceMove) Path() string {
	return "/iot-api-gateway/v0/dms/device-move"
}

func (DeviceMove) Method() string {
	return "PUT"
}

// @StatusErr[AuthorityConflictError][409666003][权限信息冲突]!
// @StatusErr[CanModifyNoEnumPropertyEnumValue][400666014][不能为非枚举类型设置枚举值]!
// @StatusErr[CmdParaIDForbidden][403666012][参数ID不匹配]!
// @StatusErr[ColumnInfoNotFound][404666031][未找到字段对应的信息]!
// @StatusErr[CommandCodeConflict][409666025][该命令已经存在]!
// @StatusErr[CommandDefineNotExist][404666003][产品命令定义不存在]!
// @StatusErr[CommandNotExist][404666002][设备命令不存在]!
// @StatusErr[CommandParameterNotEnough][400666002][命令参数不齐全]!
// @StatusErr[ConflictError][409666001][Conflict]
// @StatusErr[CreateDeviceConflict][400666003][创建设备冲突]!
// @StatusErr[DBError][500666008][数据查询出错]!
// @StatusErr[DataConflictError][409666004][数据冲突]!
// @StatusErr[DataIsTrashConflictError][409666011][数据删除标记信息冲突]!
// @StatusErr[DataStateConflictError][409666012][数据状态冲突]!
// @StatusErr[DataTypeConflictError][409666014][数据类型冲突]!
// @StatusErr[DatabaseNameExist][400666037][数据库名字已经存在]!
// @StatusErr[DatabaseNodeAesDecryptPassword][400666034][数据库实例密码解密失败]!
// @StatusErr[DatabaseNodeAesEncryptPassword][400666033][数据库实例密码加密失败]!
// @StatusErr[DatabaseNodeAndDeviceRelationNotExist][404666028][未找到数据库实例和设备的关系]!
// @StatusErr[DatabaseNodeExist][409666026][数据库地址已经存在]!
// @StatusErr[DatabaseNodeNameExist][400666032][数据库实例名字已经存在]!
// @StatusErr[DatabaseNodeNotExist][404666027][未找到数据库实例]!
// @StatusErr[DatabaseNodeUnderTopGroupNotExist][400666036][未找到顶级组织下的数据库实例]!
// @StatusErr[DeleteDeviceDefineNotNull][400666004][产品下有设备，禁止删除]!
// @StatusErr[DemoDeviceTypeNotExist][404666015][demo设备类型不存在]!
// @StatusErr[DeployLater][400666022][暂时不支持部署,稍后再试]!
// @StatusErr[DeviceBelongTop][403666006][该设备属于顶级组织，禁止移除]!
// @StatusErr[DeviceCreateForbidden][403666004][设备迁移禁止修改设备相关信息]!
// @StatusErr[DeviceDefineNotExist][404666005][设备定义不存在]!
// @StatusErr[DeviceExtraPropertyNotFound][404666022][设备附加属性不存在]!
// @StatusErr[DeviceFixedPropertyNotFound][404666021][设备固定属性不存在]!
// @StatusErr[DeviceGroupAdminIsOne][409666027][无法删除唯一的管理员]!
// @StatusErr[DeviceGroupNoPermission][400666030][没有分组权限]!
// @StatusErr[DeviceGroupPermissionConflict][409666024][分组权限已存在]!
// @StatusErr[DeviceGroupPermissionOpSelf][403666013][不能对自己进行操作]!
// @StatusErr[DeviceInfoConflictError][409666019][您创建的设备已存在，无法再次创建！]!
// @StatusErr[DeviceIsOping][403666003][设备正在被操作禁止此次操作]!
// @StatusErr[DeviceMaintainOnlyCommandModify][404666012][设备维护只能设备命令修改]!
// @StatusErr[DeviceNoOnline][400666011][设备不在线]!
// @StatusErr[DeviceNoResponse][400666013][设备无响应]!
// @StatusErr[DeviceNotExist][404666004][设备不存在]!
// @StatusErr[DeviceNotMatchReportDefine][400666012][设备和上报数据定义不匹配]!
// @StatusErr[DevicePropertyDefineEnumEmpty][400666025][枚举定义不能为空]!
// @StatusErr[DevicePropertyDefineMinMaxConflict][400666024][整形(浮点)定义最大值最小值冲突]!
// @StatusErr[DevicePropertyDefineNotFound][404666019][属性定义不存在]!
// @StatusErr[DevicePropertyModifyForbidden][403666010][不能修改,属性定义已被删除]!
// @StatusErr[DevicePropertyTypeUpdateForbidden][403666005][属性被使用,禁止修改属性类型]!
// @StatusErr[DeviceReportDefineColumnNull][400666008][定义数据字段为空]!
// @StatusErr[DeviceReportDefineNotExist][404666009][设备上报定义不存在]!
// @StatusErr[DeviceReportDefineTypeIllegal][400666009][定义数据类型非法]!
// @StatusErr[DeviceTopGroupIDNotFound][400666035][未找到顶级组织ID]!
// @StatusErr[EntityConflictError][409666008][实体冲突]!
// @StatusErr[EntityPositionConflictError][409666009][实体位置冲突]!
// @StatusErr[EntityTypeConflictError][409666015][实体类型冲突]!
// @StatusErr[EnumPropertyMustHasEnumMember][400666015][枚举类型必须有枚举值]!
// @StatusErr[EnumValueNotExist][404666014][枚举值不存在]!
// @StatusErr[EnumValueNotInt][404666013][枚举值不是数字]!
// @StatusErr[FileConflictError][409666013][文件冲突]!
// @StatusErr[FirmwareNotFound][404666023][固件不存在]!
// @StatusErr[GenerateUniqueIDError][500666010][生成唯一ID失败]!
// @StatusErr[GroupNameConflictError][409666018][分组名称冲突]!
// @StatusErr[HubNeedUpgrade][400666023][请联系IoT进行网关升级]!
// @StatusErr[IESDataDefine][500666009][属性定义不合法]!
// @StatusErr[IESStorage][500666006][存储服务异常]!
// @StatusErr[IESTopGroupDomain][500666007][顶级组织没有域名或域名有多个]!
// @StatusErr[ISECreateDevice][500666004][设备创建失败]!
// @StatusErr[ISEDeleteDevice][500666003][设备删除失败]!
// @StatusErr[ISEInvalidError][500666011][设备上报的产品ID和实际创建的产品ID不一致]!
// @StatusErr[ISEUpdateGroup][500666005][更新分组失败]!
// @StatusErr[InternalServerError][500666001][服务器错误]!
// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
// @StatusErr[JWTOtherError][500666002][JWT 其他错误]!
// @StatusErr[LimitSevenDays][403666014][至少查询7天统计范围]!
// @StatusErr[MatchDeviceNotExist][404666024][未找到符合条件的设备]!
// @StatusErr[MaterialConflictError][409666010][素材信息冲突]!
// @StatusErr[MissParameter][400666007][命令参数缺失]!
// @StatusErr[MultiplePrimaryKey][404666008][多个主键]!
// @StatusErr[NFEGroup][400666016][未找到分组]!
// @StatusErr[NameCodeNotExist][404666010][属性编码定义不存在]!
// @StatusErr[NewDeviceNotExist][404666026][未发现新设备]!
// @StatusErr[NodeTypeProductCreateHubForbidden][403666009][协议不支持创建网关]!
// @StatusErr[NodeTypeProtocolNotMatch][400666020][节点类型和协议不匹配]!
// @StatusErr[NotFoundError][404666001][未发现]!
// @StatusErr[NotTopGroup][400666021][非顶级组织]!
// @StatusErr[OrgNotExist][404666016][组织未找到]!
// @StatusErr[OtherTopGroupDataOperationForbiddenError][403666015][您无权操作其他顶级组织的数据]!
// @StatusErr[ParameterConflict][400666005][参数定义冲突]!
// @StatusErr[ParameterKeyNotUint][400666006][参数key不是uint]!
// @StatusErr[ParameterNotExist][404666007][参数定义不存在]!
// @StatusErr[ProductAndGroupNotMatch][403666007][产品与顶级组织不匹配]!
// @StatusErr[ProductAndHubNotMatch][403666008][产品与hub不匹配]!
// @StatusErr[ProductHubDomainConflict][400666019][域名冲突]!
// @StatusErr[ProductHubNotFound][404666018][网关不存在]!
// @StatusErr[ProductIconObjectIdEmptyErr][400666040][产品图标不能为空]!
// @StatusErr[ProductNameConflictError][409666020][产品名称冲突]!
// @StatusErr[ProductNotFound][404666017][产品不存在]!
// @StatusErr[ProductPropertyDataTypeChange][400666039][属性数据不允许修改]!
// @StatusErr[ProductPropertyErr][400666018][产品属性创建错误]!
// @StatusErr[ProductPropertyKeyConflictError][409666022][产品属性Key冲突]!
// @StatusErr[ProductPropertyKeyIllegal][400666026][Key只支持英文、数字、中下划线/下划线，且第一个字符必须是英文或数字]!
// @StatusErr[ProductPropertyNotFound][404666020][产品属性不存在]!
// @StatusErr[ProductPropertyStringLengthGtZero][400666038][字符串类型长度需要大于0]!
// @StatusErr[PropertyConflictError][409666016][属性冲突]!
// @StatusErr[PropertyNotExist][404666006][属性定义不存在]!
// @StatusErr[PropertyValueIllegal][400666027][属性值不合法]!
// @StatusErr[PropertyValueIsMust][400666028][属性值必填]!
// @StatusErr[RoleAuthorityConflictError][409666006][角色权限信息冲突]!
// @StatusErr[RoleConflictError][409666005][角色信息冲突]!
// @StatusErr[RoleStateConflictError][409666007][角色状态冲突]!
// @StatusErr[SetNoneSystemMaintainProperty][400666010][创建设备不能指定非系统维护属性]!
// @StatusErr[StatusForbiddenDeleteGroupError][403666002][分组下有设备，禁止删除]!
// @StatusErr[SubDeviceConflictError][409666021][子设备已经被绑定]!
// @StatusErr[SystemMaintainOnlySystemModify][404666011][系统维护只能系统修改]!
// @StatusErr[TableFieldValueInvalid][409666028][@errTale 字段值校验不通过]
// @StatusErr[TableInfoNotFound][404666030][未找到数据库表信息]!
// @StatusErr[TableNameNotExist][404666029][未找到数据库表名]!
// @StatusErr[TagConflictError][409666017][tag冲突]!
// @StatusErr[TimeConflict][400666029][时间冲突]!
// @StatusErr[TimeOutOfRange][400666017][时间范围太大]!
// @StatusErr[UserConflictError][409666002][用户冲突]!
// @StatusErr[UserNotFound][404666025][未找到用户]!
// @StatusErr[VersionConflictError][409666023][产品下版本冲突]!
// @StatusErr[VersionForbidden][403666011][版本号非法,格式必须为v0.0.0]!
// @StatusErr[VersionNumberFormatError][400666031][版本号格式错误]!
func (req *DeviceMove) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceMove")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceMove) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceMoveResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceMoveResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceMove) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceMoveResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceOrganization struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (DeviceOrganization) Path() string {
	return "/iot-api-gateway/v0/dms/device-org"
}

func (DeviceOrganization) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceOrganization) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceOrganization")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceOrganization) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceGroupResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceOrganization) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceRunState struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备id
	DeviceID uint64 `in:"query" name:"deviceID,string"`
}

func (DeviceRunState) Path() string {
	return "/iot-api-gateway/v0/dms/device/state"
}

func (DeviceRunState) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceRunState) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceRunState")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceRunState) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceRunStateResp, github_com_go_courier_courier.Metadata, error) {
	resp := new([]DeviceRunStateResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceRunState) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceRunStateResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceStateNotifyMsg struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,50]"`
}

func (DeviceStateNotifyMsg) Path() string {
	return "/iot-api-gateway/v0/dms/state-notify-msg"
}

func (DeviceStateNotifyMsg) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceStateNotifyMsg) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceStateNotifyMsg")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceStateNotifyMsg) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceOnlineStateResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceOnlineStateResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceStateNotifyMsg) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceOnlineStateResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceStateNotifyMsgUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 内部id
	ID uint64 `in:"query" name:"id,omitempty,string"`
}

func (DeviceStateNotifyMsgUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/state-notify-msg"
}

func (DeviceStateNotifyMsgUpdate) Method() string {
	return "PUT"
}

func (req *DeviceStateNotifyMsgUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceStateNotifyMsgUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceStateNotifyMsgUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *DeviceStateNotifyMsgUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type DeviceStatistics struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string       `in:"header" name:"Authorization" validate:"@string[1,]"`
	Duration      TimeDuration `in:"query" json:"duration"`
}

func (DeviceStatistics) Path() string {
	return "/iot-api-gateway/v0/dms/device/statistics"
}

func (DeviceStatistics) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *DeviceStatistics) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.DeviceStatistics")
	return c.Do(ctx, req, metas...)

}

func (req *DeviceStatistics) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceStatisticsResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceStatisticsResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *DeviceStatistics) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceStatisticsResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDevice struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 业务来源
	BusinessFrom string `in:"query" name:"businessFrom,omitempty"`
	// 产品名称
	DeviceDefineName string `in:"query" name:"deviceDefineName,omitempty"`
	// 设备ID
	DeviceID uint64 `in:"query" name:"deviceId,omitempty"`
	// 设备名称
	DeviceName string `in:"query" name:"deviceName,omitempty"`
	// 设备号
	DeviceSN string `in:"query" name:"deviceSN,omitempty"`
	// 设备类型,如果不填则是查询全部设备
	DeviceType DmsQueryDeviceType `in:"query" name:"deviceType,omitempty"`
	// 分组id必填，默认使用当前选择的组织架构id
	GroupId uint64 `in:"query" name:"groupId,omitempty,string"`
	// 分组名称
	GroupName string `in:"query" name:"groupName,omitempty"`
	// 未分组设备
	GroupStatus DmsGroupStatus `in:"query" name:"groupStatus,omitempty"`
	// 是否共享设备
	IsShare DmsDeviceType `in:"query" name:"isShare,omitempty"`
	// 设备创建时间单位秒
	MaxCreateTime TimeDuration `in:"query" name:"maxCreateTime,omitempty"`
	// 设备创建时间单位秒
	MinCreateTime TimeDuration `in:"query" name:"minCreateTime,omitempty"`
	// 节点类型
	NodeType []DmsNodeType `in:"query" name:"nodeType,omitempty"`
	// 查询位置
	Offset int64 `in:"query" default:"0" name:"offset,omitempty"`
	// 产品id，通过获取产品列表取第一个
	ProductID uint64 `in:"query" name:"productID,omitempty,string"`
	// 已共享分组
	SharedGroups []uint64 `in:"query" name:"sharedGroup,omitempty"`
	// 查询条数
	Size int64 `in:"query" name:"size"`
	// tag查询
	Tags []string `in:"query" name:"tag,omitempty"`
	// 更新时间,如果不为空查询这个时间之后更新的设备
	UpdateTime int64 `in:"query" name:"updateTime,omitempty"`
}

func (GetDevice) Path() string {
	return "/iot-api-gateway/v0/dms/device"
}

func (GetDevice) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDevice) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDevice")
	return c.Do(ctx, req, metas...)

}

func (req *GetDevice) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceQueryResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceQueryResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDevice) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceQueryResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceBasicInfo struct {
	// 设备ID
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (GetDeviceBasicInfo) Path() string {
	return "/iot-api-gateway/v2/dms/device/:deviceID"
}

func (GetDeviceBasicInfo) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceBasicInfo) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceBasicInfo")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceBasicInfo) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceBasicInfoResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceBasicInfoResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceBasicInfo) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceBasicInfoResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceCountV3 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 是否包含分享进该分组列表的设备（默认包含）
	CountInSharedInDevices GithubComGoCourierSqlxV2DatatypesBool `in:"query" default:"true" name:"countInSharedInDevices,omitempty"`
	// 分组标签
	GroupTagKey string `in:"query" name:"groupTagKey" validate:"@string[1,128]"`
	// 分组标签值列表
	GroupTagValueList []string `in:"query" name:"groupTagValueList"`
	// 产品ID列表
	ProductIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"productIDs"`
	// 顶级组织ID
	TopGroupID string `in:"query" name:"topGroupID"`
}

func (GetDeviceCountV3) Path() string {
	return "/iot-api-gateway/v3/dms/device/count"
}

func (GetDeviceCountV3) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceCountV3) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceCountV3")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceCountV3) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]GroupDeviceCountV3, github_com_go_courier_courier.Metadata, error) {
	resp := new([]GroupDeviceCountV3)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceCountV3) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]GroupDeviceCountV3, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceDetail struct {
	// 设备id
	DeviceID uint64 `in:"path" name:"deviceID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (GetDeviceDetail) Path() string {
	return "/iot-api-gateway/v0/dms/device/detail/:deviceID"
}

func (GetDeviceDetail) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceDetail) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceDetail")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceDetail) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDetailQueryResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceDetailQueryResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceDetail) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDetailQueryResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceDetailListV3 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID列表
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceIDs"`
}

func (GetDeviceDetailListV3) Path() string {
	return "/iot-api-gateway/v3/dms/device/detail-info"
}

func (GetDeviceDetailListV3) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceDetailListV3) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceDetailListV3")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceDetailListV3) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceDetailV3, github_com_go_courier_courier.Metadata, error) {
	resp := new([]DeviceDetailV3)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceDetailListV3) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceDetailV3, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceGroup struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 名称
	Name string `in:"query" name:"name,omitempty"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,50]"`
}

func (GetDeviceGroup) Path() string {
	return "/iot-api-gateway/v0/dms/device/group"
}

func (GetDeviceGroup) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceGroup) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceGroup")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceGroup) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupRespV2, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceGroupRespV2)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceGroup) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupRespV2, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceGroupInfo struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 内部设备id(分组查询后返回)
	// 分组ID
	DeviceGroupID uint64 `in:"query" name:"deviceGroupID,string"`
}

func (GetDeviceGroupInfo) Path() string {
	return "/iot-api-gateway/v0/dms/device/group/info"
}

func (GetDeviceGroupInfo) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceGroupInfo) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceGroupInfo")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceGroupInfo) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupDetailResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceGroupDetailResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceGroupInfo) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceGroupDetailResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceGroupTagsV3 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 是否包含共享分组（默认包含）
	CountInSharedOutGroups GithubComGoCourierSqlxV2DatatypesBool `in:"query" default:"true" name:"countInSharedOutGroups,omitempty"`
	// 设备ID列表
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceIDs"`
	// 偏移量
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 分页大小（-1表示获取所有的数据）
	Size int64 `in:"query" default:"10" name:"size,omitempty" validate:"@int64[-1,100]"`
	// 标签
	TagKey string `in:"query" name:"tagKey,omitempty"`
}

func (GetDeviceGroupTagsV3) Path() string {
	return "/iot-api-gateway/v3/dms/device/group-tags"
}

func (GetDeviceGroupTagsV3) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceGroupTagsV3) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceGroupTagsV3")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceGroupTagsV3) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]GetDeviceGroupTagsV3Item, github_com_go_courier_courier.Metadata, error) {
	resp := new([]GetDeviceGroupTagsV3Item)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceGroupTagsV3) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]GetDeviceGroupTagsV3Item, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDeviceListV3 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID列表
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceIDs,omitempty"`
	// 设备MN号（支持模糊查询）
	DeviceMN string `in:"query" name:"deviceMN,omitempty"`
	// 分组ID列表
	GroupIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"groupIDs,omitempty"`
	// 分组标签
	GroupTagKey string `in:"query" name:"groupTagKey,omitempty" validate:"@string[1,128]"`
	// 分组标签值列表
	GroupTagValueList []string `in:"query" name:"groupTagValueList,omitempty"`
	// 是否在线
	IsOnline GithubComGoCourierSqlxV2DatatypesBool `in:"query" name:"isOnline,omitempty"`
	// 设备名称（支持模糊查询）
	Name string `in:"query" name:"name,omitempty"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 设备所属权列表
	Ownerships []DmsDeviceType `in:"query" name:"ownerships,omitempty"`
	// 父设备ID（不为0时查询子设备列表）
	ParentDeviceID GitQuerycapComToolsDatatypesSFID `in:"query" name:"parentDeviceID,omitempty"`
	// 产品ID列表
	ProductIDs GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"productIDs,omitempty"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size,omitempty" validate:"@int64[-1,100]"`
	// 顶级组织ID
	TopGroupID string `in:"query" name:"topGroupID"`
}

func (GetDeviceListV3) Path() string {
	return "/iot-api-gateway/v3/dms/device"
}

func (GetDeviceListV3) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetDeviceListV3) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDeviceListV3")
	return c.Do(ctx, req, metas...)

}

func (req *GetDeviceListV3) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceListV3Resp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetDeviceListV3Resp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDeviceListV3) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetDeviceListV3Resp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetDevicesLatestHeartbeatDataV3 struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID列表
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `in:"body"`
}

func (GetDevicesLatestHeartbeatDataV3) Path() string {
	return "/iot-api-gateway/v3/dms/device/latest-heartbeat-data"
}

func (GetDevicesLatestHeartbeatDataV3) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
// @StatusErr[RedisError][500666005][redis错误]!
func (req *GetDevicesLatestHeartbeatDataV3) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetDevicesLatestHeartbeatDataV3")
	return c.Do(ctx, req, metas...)

}

func (req *GetDevicesLatestHeartbeatDataV3) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceLatestHeartbeatDataItem, github_com_go_courier_courier.Metadata, error) {
	resp := new([]DeviceLatestHeartbeatDataItem)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetDevicesLatestHeartbeatDataV3) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]DeviceLatestHeartbeatDataItem, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetGroupTags struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 分组ID
	GroupID uint64 `in:"query" name:"groupID,string"`
	// 偏移量
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 分页大小（-1表示获取所有的数据）
	Size int64 `in:"query" default:"10" name:"size,omitempty" validate:"@int64[-1,100]"`
	// 标签
	TagKey string `in:"query" name:"tagKey,omitempty"`
}

func (GetGroupTags) Path() string {
	return "/iot-api-gateway/v2/dms/group/tags"
}

func (GetGroupTags) Method() string {
	return "GET"
}

// @StatusErr[DBError][500666002][数据库错误]!
// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetGroupTags) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetGroupTags")
	return c.Do(ctx, req, metas...)

}

func (req *GetGroupTags) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ClientTagGetGroupInfoTagsResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(ClientTagGetGroupInfoTagsResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetGroupTags) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ClientTagGetGroupInfoTagsResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetMultiGroupBelongDevices struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 分组ID
	DeviceGroupID GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceGroupId"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,50]"`
}

func (GetMultiGroupBelongDevices) Path() string {
	return "/iot-api-gateway/v2/dms/group/device/list"
}

func (GetMultiGroupBelongDevices) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetMultiGroupBelongDevices) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetMultiGroupBelongDevices")
	return c.Do(ctx, req, metas...)

}

func (req *GetMultiGroupBelongDevices) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetGroupDeviceResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetGroupDeviceResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetMultiGroupBelongDevices) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetGroupDeviceResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetProductDetail struct {
	ProductID uint64 `in:"path" name:"productID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
}

func (GetProductDetail) Path() string {
	return "/iot-api-gateway/v0/dms/product/detail/:productID"
}

func (GetProductDetail) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetProductDetail) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetProductDetail")
	return c.Do(ctx, req, metas...)

}

func (req *GetProductDetail) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDefineDetailGetResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceDefineDetailGetResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetProductDetail) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDefineDetailGetResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetVideoBackLiveUrl struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID
	DeviceID uint64 `in:"query" name:"deviceID,string"`
}

func (GetVideoBackLiveUrl) Path() string {
	return "/iot-api-gateway/v0/video-platform/back-live-url"
}

func (GetVideoBackLiveUrl) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetVideoBackLiveUrl) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetVideoBackLiveUrl")
	return c.Do(ctx, req, metas...)

}

func (req *GetVideoBackLiveUrl) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVidelBackLiveUrlResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetVidelBackLiveUrlResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetVideoBackLiveUrl) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVidelBackLiveUrlResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetVideoLiveUrl struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID
	DeviceID uint64 `in:"query" name:"deviceID,string"`
	// 附加信息
	ExtraInfo string `in:"query" name:"extraInfo,omitempty"`
}

func (GetVideoLiveUrl) Path() string {
	return "/iot-api-gateway/v0/video-platform/live-url"
}

func (GetVideoLiveUrl) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetVideoLiveUrl) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetVideoLiveUrl")
	return c.Do(ctx, req, metas...)

}

func (req *GetVideoLiveUrl) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVideoLiveUrlResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetVideoLiveUrlResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetVideoLiveUrl) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVideoLiveUrlResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type GetVideoLiveUrlHls struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备ID
	DeviceID uint64 `in:"query" name:"deviceID,string"`
	// 附加信息
	ExtraInfo string `in:"query" name:"extraInfo,omitempty"`
}

func (GetVideoLiveUrlHls) Path() string {
	return "/iot-api-gateway/v0/video-platform/live-url-hls"
}

func (GetVideoLiveUrlHls) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *GetVideoLiveUrlHls) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.GetVideoLiveUrlHls")
	return c.Do(ctx, req, metas...)

}

func (req *GetVideoLiveUrlHls) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVideoLiveUrlHlsResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(GetVideoLiveUrlHlsResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *GetVideoLiveUrlHls) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*GetVideoLiveUrlHlsResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type MoveDeviceInGroup struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 移入的设备id
	DeviceIds GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceIds"`
	// 移入的分组id
	GroupId GitQuerycapComToolsDatatypesSFID `in:"query" name:"groupId"`
}

func (MoveDeviceInGroup) Path() string {
	return "/iot-api-gateway/v0/dms/move-in-group"
}

func (MoveDeviceInGroup) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *MoveDeviceInGroup) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.MoveDeviceInGroup")
	return c.Do(ctx, req, metas...)

}

func (req *MoveDeviceInGroup) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*MoveDeviceInGroupResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(MoveDeviceInGroupResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *MoveDeviceInGroup) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*MoveDeviceInGroupResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type MoveDeviceOutGroup struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 移除的设备id
	DeviceIds GitQuerycapComToolsDatatypesSFIDs `in:"query" name:"deviceIds"`
	// 移除的分组id
	GroupId GitQuerycapComToolsDatatypesSFID `in:"query" name:"groupId"`
}

func (MoveDeviceOutGroup) Path() string {
	return "/iot-api-gateway/v0/dms/move-out-group"
}

func (MoveDeviceOutGroup) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *MoveDeviceOutGroup) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.MoveDeviceOutGroup")
	return c.Do(ctx, req, metas...)

}

func (req *MoveDeviceOutGroup) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*MoveDeviceOutGroupResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(MoveDeviceOutGroupResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *MoveDeviceOutGroup) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*MoveDeviceOutGroupResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type OfflineDeviceList struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 开始时间(秒)(包含)
	BeginTime int64 `in:"query" name:"beginTime,omitempty" validate:"@int64[0,]"`
	// 结束时间(秒)(不包含)
	EndTime int64 `in:"query" name:"endTime,omitempty" validate:"@int64[0,]"`
	// 分组ID
	GroupID uint64 `in:"query" name:"groupID,string,omitempty"`
	Offset  int64  `in:"query" name:"offset,omitempty" validate:"@int64[1,]"`
	// 排序
	OrderBy DmsOrderType `in:"query" name:"orderBy,omitempty"`
	// 产品ID
	ProductID uint64 `in:"query" name:"productID,string,omitempty"`
	// 类型
	QueryType DmsOfflineQueryType `in:"query" name:"queryType"`
	Size      int64               `in:"query" default:"10" name:"size,omitempty" validate:"@int64[0,100]"`
}

func (OfflineDeviceList) Path() string {
	return "/iot-api-gateway/v2/dms/monitoring/offline-device"
}

func (OfflineDeviceList) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *OfflineDeviceList) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.OfflineDeviceList")
	return c.Do(ctx, req, metas...)

}

func (req *OfflineDeviceList) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*OfflineDeviceResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(OfflineDeviceResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *OfflineDeviceList) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*OfflineDeviceResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type OpeLog struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备id
	DeviceID uint64 `in:"query" name:"deviceID,omitempty,string"`
	// 时间间隔
	Duration TimeDuration `in:"query" name:"duration,omitempty"`
	// 查询位置
	Offset int64 `in:"query" default:"0" name:"offset,omitempty"`
	// 产品id
	ProductID uint64 `in:"query" name:"productID,omitempty,string"`
	// 查询条数
	Size int64 `in:"query" name:"size"`
}

func (OpeLog) Path() string {
	return "/iot-api-gateway/v0/dms/opelog"
}

func (OpeLog) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *OpeLog) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.OpeLog")
	return c.Do(ctx, req, metas...)

}

func (req *OpeLog) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandQueryResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(CommandQueryResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *OpeLog) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*CommandQueryResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type Product struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 查询位置
	Offset int32 `in:"query" default:"0" name:"offset,omitempty"`
	// 产品名称
	ProductName string `in:"query" name:"productName,omitempty"`
	// 查询条数
	Size int32 `in:"query" name:"size"`
}

func (Product) Path() string {
	return "/iot-api-gateway/v0/dms/product"
}

func (Product) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *Product) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.Product")
	return c.Do(ctx, req, metas...)

}

func (req *Product) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ProductResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(ProductResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *Product) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ProductResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductCmdList struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 产品id
	ProductID uint64 `in:"query" name:"productID,string"`
}

func (ProductCmdList) Path() string {
	return "/iot-api-gateway/v0/dms/proudctCmdList"
}

func (ProductCmdList) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductCmdList) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductCmdList")
	return c.Do(ctx, req, metas...)

}

func (req *ProductCmdList) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]CommandDefine, github_com_go_courier_courier.Metadata, error) {
	resp := new([]CommandDefine)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductCmdList) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]CommandDefine, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductCreate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                   `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          DeviceDefineCreateDataV1 `in:"body"`
}

func (ProductCreate) Path() string {
	return "/iot-api-gateway/v0/dms/product"
}

func (ProductCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductCreate")
	return c.Do(ctx, req, metas...)

}

func (req *ProductCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDefine, github_com_go_courier_courier.Metadata, error) {
	resp := new(DeviceDefine)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*DeviceDefine, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductDelete struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	ProductID     uint64 `in:"query" name:"productID,string"`
}

func (ProductDelete) Path() string {
	return "/iot-api-gateway/v0/dms/product"
}

func (ProductDelete) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductDelete")
	return c.Do(ctx, req, metas...)

}

func (req *ProductDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductPropertyCreate struct {
	ProductID uint64 `in:"path" name:"productID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                            `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          ProductPropertyDefineV2CreateData `in:"body" json:"data,omitempty"`
}

func (ProductPropertyCreate) Path() string {
	return "/iot-api-gateway/v2/dms/property/product/:productID"
}

func (ProductPropertyCreate) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductPropertyCreate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductPropertyCreate")
	return c.Do(ctx, req, metas...)

}

func (req *ProductPropertyCreate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductPropertyCreate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductPropertyDelete struct {
	// 产品ID
	ProductID uint64 `in:"path" name:"productID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 属性ID
	Body GitQuerycapComToolsDatatypesSFIDs `in:"body" json:"body,omitempty"`
}

func (ProductPropertyDelete) Path() string {
	return "/iot-api-gateway/v2/dms/property/product/:productID"
}

func (ProductPropertyDelete) Method() string {
	return "DELETE"
}

func (req *ProductPropertyDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductPropertyDelete")
	return c.Do(ctx, req, metas...)

}

func (req *ProductPropertyDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *ProductPropertyDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductPropertyGet struct {
	ProductID uint64 `in:"path" name:"productID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	Offset        int64  `in:"query" name:"offset,omitempty" validate:"@int64[1,]"`
	// 属性类型
	PropertyType DmsDevicePropertyType `in:"query" name:"propertyType,omitempty"`
	Size         int64                 `in:"query" name:"size,omitempty" validate:"@int64[-1,]"`
}

func (ProductPropertyGet) Path() string {
	return "/iot-api-gateway/v2/dms/property/product/:productID"
}

func (ProductPropertyGet) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductPropertyGet) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductPropertyGet")
	return c.Do(ctx, req, metas...)

}

func (req *ProductPropertyGet) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ProductPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(ProductPropertyGetResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductPropertyGet) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*ProductPropertyGetResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductPropertyPut struct {
	ProductID uint64 `in:"path" name:"productID,string"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                         `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          ProductPropertyDefineV2PutData `in:"body" json:"data,omitempty"`
}

func (ProductPropertyPut) Path() string {
	return "/iot-api-gateway/v2/dms/property/product/:productID"
}

func (ProductPropertyPut) Method() string {
	return "PUT"
}

func (req *ProductPropertyPut) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductPropertyPut")
	return c.Do(ctx, req, metas...)

}

func (req *ProductPropertyPut) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *ProductPropertyPut) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductPropertySearch struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	PropertyName  string `in:"query" name:"propertyName" validate:"@string[1,255]"`
	PropertyValue string `in:"query" name:"propertyValue" validate:"@string[1,255]"`
}

func (ProductPropertySearch) Path() string {
	return "/iot-api-gateway/v2/dms/product/property-search"
}

func (ProductPropertySearch) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductPropertySearch) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductPropertySearch")
	return c.Do(ctx, req, metas...)

}

func (req *ProductPropertySearch) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]ProductDetail, github_com_go_courier_courier.Metadata, error) {
	resp := new([]ProductDetail)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductPropertySearch) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*[]ProductDetail, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type ProductUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                 `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          DeviceDefineUpdateData `in:"body"`
}

func (ProductUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/product"
}

func (ProductUpdate) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *ProductUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.ProductUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *ProductUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *ProductUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type Property struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                   `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          PropertyDefineCreateData `in:"body"`
}

func (Property) Path() string {
	return "/iot-api-gateway/v0/dms/property"
}

func (Property) Method() string {
	return "POST"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *Property) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.Property")
	return c.Do(ctx, req, metas...)

}

func (req *Property) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *Property) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type PropertyDelete struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 属性定义ID
	PropertyDefineID uint64 `in:"query" name:"propertyDefineId,string"`
}

func (PropertyDelete) Path() string {
	return "/iot-api-gateway/v0/dms/property"
}

func (PropertyDelete) Method() string {
	return "DELETE"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *PropertyDelete) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.PropertyDelete")
	return c.Do(ctx, req, metas...)

}

func (req *PropertyDelete) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *PropertyDelete) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type PropertyUpdate struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string                   `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          PropertyDefineUpdateData `in:"body"`
}

func (PropertyUpdate) Path() string {
	return "/iot-api-gateway/v0/dms/property"
}

func (PropertyUpdate) Method() string {
	return "PUT"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *PropertyUpdate) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.PropertyUpdate")
	return c.Do(ctx, req, metas...)

}

func (req *PropertyUpdate) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	resp := new(string)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *PropertyUpdate) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*string, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type QueryDevicelocationInCache struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备定义ID
	DeviceDefineID uint64 `in:"query" json:"deviceDefineId,string"`
	// 设备纬度属性定义ID
	DeviceLatCacheCode string `in:"query" json:"deviceLatCacheCode"`
	// 设备经度属性定义ID
	DeviceLonCacheCode string `in:"query" json:"deviceLonCacheCode"`
	// 设备组织
	OrganizeID uint64 `in:"query" json:"organizeId"`
	// 查询区域多边形表示
	Polygon LocationPolygon `in:"query" json:"polygon"`
	// 设备类型,如果不填则是查询全部状态的设备
	DeviceType DmsQueryDeviceType `in:"query" name:"deviceType,omitempty"`
}

func (QueryDevicelocationInCache) Path() string {
	return "/iot-api-gateway/v0/rk-iot/move_device"
}

func (QueryDevicelocationInCache) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *QueryDevicelocationInCache) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.QueryDevicelocationInCache")
	return c.Do(ctx, req, metas...)

}

func (req *QueryDevicelocationInCache) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*QueryDeviveByLocationResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(QueryDeviveByLocationResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *QueryDevicelocationInCache) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*QueryDeviveByLocationResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type QueryDeviveLocationInProperty struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 设备定义ID
	DeviceDefineID uint64 `in:"query" json:"deviceDefineId,string"`
	// 设备纬度属性定义ID
	DeviceLatPropertyDefineID uint64 `in:"query" json:"deviceLatPropertyDefineId"`
	// 设备经度属性定义ID
	DeviceLonPropertyDefineID uint64 `in:"query" json:"deviceLonPropertyDefineId"`
	// 设备组织
	OrganizeID uint64 `in:"query" json:"organizeId"`
	// 查询区域多边形表示
	Polygon LocationPolygon `in:"query" json:"polygon"`
	// 设备类型,如果不填则是查询全部状态的设备
	DeviceType DmsQueryDeviceType `in:"query" name:"deviceType,omitempty"`
}

func (QueryDeviveLocationInProperty) Path() string {
	return "/iot-api-gateway/v0/rk-iot/fixed_location_device"
}

func (QueryDeviveLocationInProperty) Method() string {
	return "GET"
}

// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
func (req *QueryDeviveLocationInProperty) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.QueryDeviveLocationInProperty")
	return c.Do(ctx, req, metas...)

}

func (req *QueryDeviveLocationInProperty) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*QueryDeviveByLocationResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(QueryDeviveByLocationResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *QueryDeviveLocationInProperty) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*QueryDeviveByLocationResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type RawDataPost struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string        `in:"header" name:"Authorization" validate:"@string[1,]"`
	Data          RawDataGetReq `in:"body" json:"data,omitempty"`
}

func (RawDataPost) Path() string {
	return "/iot-api-gateway/v2/raw-db-data-cache/device/raw-data/raw-db-data-kafka-to-cache/v0/device/raw-data"
}

func (RawDataPost) Method() string {
	return "POST"
}

// @StatusErr[AuthorityConflictError][409666003][权限信息冲突]!
// @StatusErr[BusinessQueryByIdAndNameForbidden][403999002][不能同时填name和id查询business]!
// @StatusErr[CEBusinessIDExists][409999003][业务ID已存在]!
// @StatusErr[CanModifyNoEnumPropertyEnumValue][400666014][不能为非枚举类型设置枚举值]!
// @StatusErr[CmdParaIDForbidden][403666012][参数ID不匹配]!
// @StatusErr[CommandCodeConflict][409666025][改命令已经存在]!
// @StatusErr[CommandDefineNotExist][404666003][产品命令定义不存在]!
// @StatusErr[CommandNotExist][404666002][设备命令不存在]!
// @StatusErr[CommandParameterNotEnough][400666002][命令参数不齐全]!
// @StatusErr[ConflictError][409666001][Conflict]
// @StatusErr[ConflictError][409999001][Conflict]
// @StatusErr[CreateDeviceConflict][400666003][创建设备冲突]!
// @StatusErr[DBError][500666008][数据查询出错]!
// @StatusErr[DataConflictError][409666004][数据冲突]!
// @StatusErr[DataIsTrashConflictError][409666011][数据删除标记信息冲突]!
// @StatusErr[DataQueryFieldUpToLimit][403999004][数据批量查询,field个数超过限制]!
// @StatusErr[DataQueryKeyUpToLimit][403999003][数据批量查询,key个数超过限制]!
// @StatusErr[DataStateConflictError][409666012][数据状态冲突]!
// @StatusErr[DataTypeConflictError][409666014][数据类型冲突]!
// @StatusErr[DeleteDeviceDefineNotNull][400666004][产品下有属性，禁止删除]!
// @StatusErr[DemoDeviceTypeNotExist][404666015][demo设备类型不存在]!
// @StatusErr[DeployLater][400666022][暂时不支持部署,稍后再试]!
// @StatusErr[DeviceBelongTop][403666006][该设备属于顶级组织，禁止移除]!
// @StatusErr[DeviceCreateForbidden][403666004][设备迁移禁止修改设备相关信息]!
// @StatusErr[DeviceDefineNotExist][404666005][设备定义不存在]!
// @StatusErr[DeviceExtraPropertyNotFound][404666022][设备附加属性不存在]!
// @StatusErr[DeviceFixedPropertyNotFound][404666021][设备固定属性不存在]!
// @StatusErr[DeviceGroupNoPermission][400666030][没有分组权限]!
// @StatusErr[DeviceGroupPermissionConflict][409666024][分组权限已存在]!
// @StatusErr[DeviceGroupPermissionOpSelf][403666013][不能对自己进行操作]!
// @StatusErr[DeviceInfoConflictError][409666019][您创建的设备已存在，无法再次创建！]!
// @StatusErr[DeviceIsOping][403666003][设备正在被操作禁止此次操作]!
// @StatusErr[DeviceMaintainOnlyCommandModify][404666012][设备维护只能设备命令修改]!
// @StatusErr[DeviceNoOnline][400666011][设备不在线]!
// @StatusErr[DeviceNoResponse][400666013][设备无响应]!
// @StatusErr[DeviceNotExist][404666004][设备不存在]!
// @StatusErr[DeviceNotMatchReportDefine][400666012][设备和上报数据定义不匹配]!
// @StatusErr[DevicePropertyDefineEnumEmpty][400666025][枚举定义不能为空]!
// @StatusErr[DevicePropertyDefineMinMaxConflict][400666024][整形(浮点)定义最大值最小值冲突]!
// @StatusErr[DevicePropertyDefineNotFound][404666019][属性定义不存在]!
// @StatusErr[DevicePropertyModifyForbidden][403666010][不能修改,属性定义已被删除]!
// @StatusErr[DevicePropertyTypeUpdateForbidden][403666005][属性被使用,禁止修改属性类型]!
// @StatusErr[DeviceReportDefineColumnNull][400666008][定义数据字段为空]!
// @StatusErr[DeviceReportDefineNotExist][404666009][设备上报定义不存在]!
// @StatusErr[DeviceReportDefineTypeIllegal][400666009][定义数据类型非法]!
// @StatusErr[EntityConflictError][409666008][实体冲突]!
// @StatusErr[EntityPositionConflictError][409666009][实体位置冲突]!
// @StatusErr[EntityTypeConflictError][409666015][实体类型冲突]!
// @StatusErr[EnumPropertyMustHasEnumMember][400666015][枚举类型必须有枚举值]!
// @StatusErr[EnumValueNotExist][404666014][枚举值不存在]!
// @StatusErr[EnumValueNotInt][404666013][枚举值不是数字]!
// @StatusErr[FileConflictError][409666013][文件冲突]!
// @StatusErr[FirmwareNotFound][404666023][固件不存在]!
// @StatusErr[ForbiddenError][403999001][Forbidden]
// @StatusErr[GenerateUniqueIDError][500666010][生成唯一ID失败]!
// @StatusErr[GroupNameConflictError][409666018][分组名称冲突]!
// @StatusErr[HubNeedUpgrade][400666023][请联系IoT进行网关升级]!
// @StatusErr[IESDataDefine][500666009][属性定义不合法]!
// @StatusErr[IESStorage][500666006][存储服务异常]!
// @StatusErr[IESTopGroupDomain][500666007][顶级组织没有域名或域名有多个]!
// @StatusErr[ISECreateDevice][500666004][设备创建失败]!
// @StatusErr[ISEDeleteDevice][500666003][设备删除失败]!
// @StatusErr[ISELoadBusinessIDFailed][500999007][读取业务ID失败]!
// @StatusErr[ISELoadCacheFailed][500999003][获取缓存关键字失败]!
// @StatusErr[ISERegistryBusinessIDFailed][500999009][注册业务ID失败]!
// @StatusErr[ISERemoveBusinessIDFailed][500999008][清除业务ID失败]!
// @StatusErr[ISERemoveCacheFailed][500999004][清除缓存失败]!
// @StatusErr[ISEUpdateCacheFailed][500999005][更新缓存失败]!
// @StatusErr[ISEUpdateGroup][500666005][更新分组失败]!
// @StatusErr[ISEWriteCacheFailed][500999006][写入缓存失败]!
// @StatusErr[InternalServerError][500666001][服务器错误]!
// @StatusErr[InternalServerError][500999001][InternalServerError]
// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
// @StatusErr[JWTAbsentError][404999002][令牌不存在]!
// @StatusErr[JWTInvalidError][401999002][令牌无效]!
// @StatusErr[JWTOtherError][500666002][JWT 其他错误]!
// @StatusErr[JWTOtherError][500999002][JWT 其他错误]!
// @StatusErr[LimitSevenDays][403666014][至少查询7天统计范围]!
// @StatusErr[MatchDeviceNotExist][404666024][未找到符合条件的设备]!
// @StatusErr[MaterialConflictError][409666010][素材信息冲突]!
// @StatusErr[MissParameter][400666007][命令参数缺失]!
// @StatusErr[MultiplePrimaryKey][404666008][多个主键]!
// @StatusErr[NFEGroup][400666016][未找到分组]!
// @StatusErr[NameCodeNotExist][404666010][属性编码定义不存在]!
// @StatusErr[NewDeviceNotExist][404666026][未发现新设备]!
// @StatusErr[NodeTypeProductCreateHubForbidden][403666009][协议不支持创建网关]!
// @StatusErr[NodeTypeProtocolNotMatch][400666020][节点类型和协议不匹配]!
// @StatusErr[NotEnoughMaterial][400999002][没有足够的素材]!
// @StatusErr[NotFoundError][404666001][未发现]!
// @StatusErr[NotFoundError][404999001][NotFound]
// @StatusErr[NotTopGroup][400666021][非顶级组织]!
// @StatusErr[OrgNotExist][404666016][组织未找到]!
// @StatusErr[OtherTopGroupDataOperationForbiddenError][403666015][您无权操作其他顶级组织的数据]!
// @StatusErr[ParameterConflict][400666005][参数定义冲突]!
// @StatusErr[ParameterKeyNotUint][400666006][参数key不是uint]!
// @StatusErr[ParameterNotExist][404666007][参数定义不存在]!
// @StatusErr[ProductAndGroupNotMatch][403666007][产品与顶级组织不匹配]!
// @StatusErr[ProductAndHubNotMatch][403666008][产品与hub不匹配]!
// @StatusErr[ProductHubDomainConflict][400666019][域名冲突]!
// @StatusErr[ProductHubNotFound][404666018][网关不存在]!
// @StatusErr[ProductNameConflictError][409666020][产品名称冲突]!
// @StatusErr[ProductNotFound][404666017][产品不存在]!
// @StatusErr[ProductPropertyErr][400666018][产品属性创建错误]!
// @StatusErr[ProductPropertyKeyConflictError][409666022][产品属性Key冲突]!
// @StatusErr[ProductPropertyKeyIllegal][400666026][Key只支持英文、数字、中下划线/下划线]!
// @StatusErr[ProductPropertyNotFound][404666020][产品属性不存在]!
// @StatusErr[PropertyConflictError][409666016][属性冲突]!
// @StatusErr[PropertyNotExist][404666006][属性定义不存在]!
// @StatusErr[PropertyValueIllegal][400666027][属性值不合法]!
// @StatusErr[PropertyValueIsMust][400666028][属性值必填]!
// @StatusErr[RoleAuthorityConflictError][409666006][角色权限信息冲突]!
// @StatusErr[RoleConflictError][409666005][角色信息冲突]!
// @StatusErr[RoleStateConflictError][409666007][角色状态冲突]!
// @StatusErr[SetNoneSystemMaintainProperty][400666010][创建设备不能指定非系统维护属性]!
// @StatusErr[StatusForbiddenDeleteGroupError][403666002][分组下有设备，禁止删除]!
// @StatusErr[SubDeviceConflictError][409666021][子设备已经被绑定]!
// @StatusErr[SystemMaintainOnlySystemModify][404666011][系统维护只能系统修改]!
// @StatusErr[TagConflictError][409666017][tag冲突]!
// @StatusErr[TimeConflict][400666029][时间冲突]!
// @StatusErr[TimeOutOfRange][400666017][时间范围太大]!
// @StatusErr[UserConflictError][409666002][用户冲突]!
// @StatusErr[UserConflictError][409999002][用户冲突]!
// @StatusErr[UserNotFound][404666025][未找到用户]!
// @StatusErr[VersionConflictError][409666023][产品下版本冲突]!
// @StatusErr[VersionForbidden][403666011][版本号非法,格式必须为v0.0.0]!
// @StatusErr[VersionNumberFormatError][400666031][版本号格式错误]!
func (req *RawDataPost) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.RawDataPost")
	return c.Do(ctx, req, metas...)

}

func (req *RawDataPost) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*RawDataGetResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(RawDataGetResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *RawDataPost) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*RawDataGetResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type RegisterDeviceEncryptionKey struct {
	// 产品ID
	ProductID uint64 `in:"path" name:"productId,string"`
	// 顶级组织ID
	TopGroupID string `in:"path" name:"topGroupId"`
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 请求体
	Body RegisterDeviceEncryptionKeyReq `in:"body"`
}

func (RegisterDeviceEncryptionKey) Path() string {
	return "/iot-api-gateway/v2/dms/product/:topGroupId/:productId/device-encryption-key"
}

func (RegisterDeviceEncryptionKey) Method() string {
	return "PUT"
}

func (req *RegisterDeviceEncryptionKey) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.RegisterDeviceEncryptionKey")
	return c.Do(ctx, req, metas...)

}

func (req *RegisterDeviceEncryptionKey) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.Do(ctx, c, metas...).Into(nil)
}

func (req *RegisterDeviceEncryptionKey) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}

type SubDeviceList struct {
	// AuthToken
	//
	// //应用标示
	// AppId string `name:"appId" in:"header" validate:"@string[1,]"`
	// //签名
	// Sign string `name:"sign" in:"header" validate:"@string[1,]"`
	// //时间戳, 单位秒
	// TimeStamp int64 `name:"timeStamp" in:"header"`
	Authorization string `in:"header" name:"Authorization" validate:"@string[1,]"`
	// 子设备mn
	DeviceMn string `in:"query" name:"deviceMn,omitempty"`
	// 子设备名称
	DeviceName string `in:"query" name:"deviceName,omitempty"`
	// 偏移
	Offset int64 `in:"query" default:"0" name:"offset,omitempty" validate:"@int64[0,]"`
	// 父设备ID
	ParentDeviceId uint64 `in:"query" name:"productDeviceId,string"`
	// 每页的大小
	Size int64 `in:"query" default:"10" name:"size" validate:"@int64[-1,500]"`
}

func (SubDeviceList) Path() string {
	return "/iot-api-gateway/v1/dms/device/list/sub"
}

func (SubDeviceList) Method() string {
	return "GET"
}

// @StatusErr[AuthorityConflictError][409666003][权限信息冲突]!
// @StatusErr[CanModifyNoEnumPropertyEnumValue][400666014][不能为非枚举类型设置枚举值]!
// @StatusErr[CmdParaIDForbidden][403666012][参数ID不匹配]!
// @StatusErr[ColumnInfoNotFound][404666031][未找到字段对应的信息]!
// @StatusErr[CommandCodeConflict][409666025][该命令已经存在]!
// @StatusErr[CommandDefineNotExist][404666003][产品命令定义不存在]!
// @StatusErr[CommandNotExist][404666002][设备命令不存在]!
// @StatusErr[CommandParameterNotEnough][400666002][命令参数不齐全]!
// @StatusErr[ConflictError][409666001][Conflict]
// @StatusErr[CreateDeviceConflict][400666003][创建设备冲突]!
// @StatusErr[DBError][500666008][数据查询出错]!
// @StatusErr[DataConflictError][409666004][数据冲突]!
// @StatusErr[DataIsTrashConflictError][409666011][数据删除标记信息冲突]!
// @StatusErr[DataStateConflictError][409666012][数据状态冲突]!
// @StatusErr[DataTypeConflictError][409666014][数据类型冲突]!
// @StatusErr[DatabaseNameExist][400666037][数据库名字已经存在]!
// @StatusErr[DatabaseNodeAesDecryptPassword][400666034][数据库实例密码解密失败]!
// @StatusErr[DatabaseNodeAesEncryptPassword][400666033][数据库实例密码加密失败]!
// @StatusErr[DatabaseNodeAndDeviceRelationNotExist][404666028][未找到数据库实例和设备的关系]!
// @StatusErr[DatabaseNodeExist][409666026][数据库地址已经存在]!
// @StatusErr[DatabaseNodeNameExist][400666032][数据库实例名字已经存在]!
// @StatusErr[DatabaseNodeNotExist][404666027][未找到数据库实例]!
// @StatusErr[DatabaseNodeUnderTopGroupNotExist][400666036][未找到顶级组织下的数据库实例]!
// @StatusErr[DeleteDeviceDefineNotNull][400666004][产品下有设备，禁止删除]!
// @StatusErr[DemoDeviceTypeNotExist][404666015][demo设备类型不存在]!
// @StatusErr[DeployLater][400666022][暂时不支持部署,稍后再试]!
// @StatusErr[DeviceBelongTop][403666006][该设备属于顶级组织，禁止移除]!
// @StatusErr[DeviceCreateForbidden][403666004][设备迁移禁止修改设备相关信息]!
// @StatusErr[DeviceDefineNotExist][404666005][设备定义不存在]!
// @StatusErr[DeviceExtraPropertyNotFound][404666022][设备附加属性不存在]!
// @StatusErr[DeviceFixedPropertyNotFound][404666021][设备固定属性不存在]!
// @StatusErr[DeviceGroupAdminIsOne][409666027][无法删除唯一的管理员]!
// @StatusErr[DeviceGroupNoPermission][400666030][没有分组权限]!
// @StatusErr[DeviceGroupPermissionConflict][409666024][分组权限已存在]!
// @StatusErr[DeviceGroupPermissionOpSelf][403666013][不能对自己进行操作]!
// @StatusErr[DeviceInfoConflictError][409666019][您创建的设备已存在，无法再次创建！]!
// @StatusErr[DeviceIsOping][403666003][设备正在被操作禁止此次操作]!
// @StatusErr[DeviceMaintainOnlyCommandModify][404666012][设备维护只能设备命令修改]!
// @StatusErr[DeviceNoOnline][400666011][设备不在线]!
// @StatusErr[DeviceNoResponse][400666013][设备无响应]!
// @StatusErr[DeviceNotExist][404666004][设备不存在]!
// @StatusErr[DeviceNotMatchReportDefine][400666012][设备和上报数据定义不匹配]!
// @StatusErr[DevicePropertyDefineEnumEmpty][400666025][枚举定义不能为空]!
// @StatusErr[DevicePropertyDefineMinMaxConflict][400666024][整形(浮点)定义最大值最小值冲突]!
// @StatusErr[DevicePropertyDefineNotFound][404666019][属性定义不存在]!
// @StatusErr[DevicePropertyModifyForbidden][403666010][不能修改,属性定义已被删除]!
// @StatusErr[DevicePropertyTypeUpdateForbidden][403666005][属性被使用,禁止修改属性类型]!
// @StatusErr[DeviceReportDefineColumnNull][400666008][定义数据字段为空]!
// @StatusErr[DeviceReportDefineNotExist][404666009][设备上报定义不存在]!
// @StatusErr[DeviceReportDefineTypeIllegal][400666009][定义数据类型非法]!
// @StatusErr[DeviceTopGroupIDNotFound][400666035][未找到顶级组织ID]!
// @StatusErr[EntityConflictError][409666008][实体冲突]!
// @StatusErr[EntityPositionConflictError][409666009][实体位置冲突]!
// @StatusErr[EntityTypeConflictError][409666015][实体类型冲突]!
// @StatusErr[EnumPropertyMustHasEnumMember][400666015][枚举类型必须有枚举值]!
// @StatusErr[EnumValueNotExist][404666014][枚举值不存在]!
// @StatusErr[EnumValueNotInt][404666013][枚举值不是数字]!
// @StatusErr[FileConflictError][409666013][文件冲突]!
// @StatusErr[FirmwareNotFound][404666023][固件不存在]!
// @StatusErr[GenerateUniqueIDError][500666010][生成唯一ID失败]!
// @StatusErr[GroupNameConflictError][409666018][分组名称冲突]!
// @StatusErr[HubNeedUpgrade][400666023][请联系IoT进行网关升级]!
// @StatusErr[IESDataDefine][500666009][属性定义不合法]!
// @StatusErr[IESStorage][500666006][存储服务异常]!
// @StatusErr[IESTopGroupDomain][500666007][顶级组织没有域名或域名有多个]!
// @StatusErr[ISECreateDevice][500666004][设备创建失败]!
// @StatusErr[ISEDeleteDevice][500666003][设备删除失败]!
// @StatusErr[ISEInvalidError][500666011][设备上报的产品ID和实际创建的产品ID不一致]!
// @StatusErr[ISEUpdateGroup][500666005][更新分组失败]!
// @StatusErr[InternalServerError][500666001][InternalServerError]
// @StatusErr[InvalidAuthorization][400999005][authorization 格式错误]!
// @StatusErr[InvalidSign][400999003][Sign错误]!
// @StatusErr[InvalidTimeStampFormat][400999006][时间戳格式错误]!
// @StatusErr[InvalidTimeStamp][400999004][timestamp错误]!
// @StatusErr[JWTOtherError][500666002][JWT 其他错误]!
// @StatusErr[LimitSevenDays][403666014][至少查询7天统计范围]!
// @StatusErr[MatchDeviceNotExist][404666024][未找到符合条件的设备]!
// @StatusErr[MaterialConflictError][409666010][素材信息冲突]!
// @StatusErr[MissParameter][400666007][命令参数缺失]!
// @StatusErr[MultiplePrimaryKey][404666008][多个主键]!
// @StatusErr[NFEGroup][400666016][未找到分组]!
// @StatusErr[NameCodeNotExist][404666010][属性编码定义不存在]!
// @StatusErr[NewDeviceNotExist][404666026][未发现新设备]!
// @StatusErr[NodeTypeProductCreateHubForbidden][403666009][协议不支持创建网关]!
// @StatusErr[NodeTypeProtocolNotMatch][400666020][节点类型和协议不匹配]!
// @StatusErr[NotFoundError][404666001][未发现]!
// @StatusErr[NotTopGroup][400666021][非顶级组织]!
// @StatusErr[OrgNotExist][404666016][组织未找到]!
// @StatusErr[OtherTopGroupDataOperationForbiddenError][403666015][您无权操作其他顶级组织的数据]!
// @StatusErr[ParameterConflict][400666005][参数定义冲突]!
// @StatusErr[ParameterKeyNotUint][400666006][参数key不是uint]!
// @StatusErr[ParameterNotExist][404666007][参数定义不存在]!
// @StatusErr[ProductAndGroupNotMatch][403666007][产品与顶级组织不匹配]!
// @StatusErr[ProductAndHubNotMatch][403666008][产品与hub不匹配]!
// @StatusErr[ProductHubDomainConflict][400666019][域名冲突]!
// @StatusErr[ProductHubNotFound][404666018][网关不存在]!
// @StatusErr[ProductIconObjectIdEmptyErr][400666040][产品图标不能为空]!
// @StatusErr[ProductNameConflictError][409666020][产品名称冲突]!
// @StatusErr[ProductNotFound][404666017][产品不存在]!
// @StatusErr[ProductPropertyDataTypeChange][400666039][属性数据不允许修改]!
// @StatusErr[ProductPropertyErr][400666018][产品属性创建错误]!
// @StatusErr[ProductPropertyKeyConflictError][409666022][产品属性Key冲突]!
// @StatusErr[ProductPropertyKeyIllegal][400666026][Key只支持英文、数字、中下划线/下划线，且第一个字符必须是英文或数字]!
// @StatusErr[ProductPropertyNotFound][404666020][产品属性不存在]!
// @StatusErr[ProductPropertyStringLengthGtZero][400666038][字符串类型长度需要大于0]!
// @StatusErr[PropertyConflictError][409666016][属性冲突]!
// @StatusErr[PropertyNotExist][404666006][属性定义不存在]!
// @StatusErr[PropertyValueIllegal][400666027][属性值不合法]!
// @StatusErr[PropertyValueIsMust][400666028][属性值必填]!
// @StatusErr[RedisError][500666005][redis错误]!
// @StatusErr[RoleAuthorityConflictError][409666006][角色权限信息冲突]!
// @StatusErr[RoleConflictError][409666005][角色信息冲突]!
// @StatusErr[RoleStateConflictError][409666007][角色状态冲突]!
// @StatusErr[SetNoneSystemMaintainProperty][400666010][创建设备不能指定非系统维护属性]!
// @StatusErr[StatusForbiddenDeleteGroupError][403666002][分组下有设备，禁止删除]!
// @StatusErr[SubDeviceConflictError][409666021][子设备已经被绑定]!
// @StatusErr[SystemMaintainOnlySystemModify][404666011][系统维护只能系统修改]!
// @StatusErr[TableFieldValueInvalid][409666028][@errTale 字段值校验不通过]
// @StatusErr[TableInfoNotFound][404666030][未找到数据库表信息]!
// @StatusErr[TableNameNotExist][404666029][未找到数据库表名]!
// @StatusErr[TagConflictError][409666017][tag冲突]!
// @StatusErr[TimeConflict][400666029][时间冲突]!
// @StatusErr[TimeOutOfRange][400666017][时间范围太大]!
// @StatusErr[UserConflictError][409666002][用户冲突]!
// @StatusErr[UserNotFound][404666025][未找到用户]!
// @StatusErr[VersionConflictError][409666023][产品下版本冲突]!
// @StatusErr[VersionForbidden][403666011][版本号非法,格式必须为v0.0.0]!
// @StatusErr[VersionNumberFormatError][400666031][版本号格式错误]!
func (req *SubDeviceList) Do(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) github_com_go_courier_courier.Result {

	ctx = github_com_go_courier_metax.ContextWith(ctx, "operationID", "iotApiGateway.SubDeviceList")
	return c.Do(ctx, req, metas...)

}

func (req *SubDeviceList) InvokeContext(ctx context.Context, c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*SubDeviceListResp, github_com_go_courier_courier.Metadata, error) {
	resp := new(SubDeviceListResp)

	meta, err := req.Do(ctx, c, metas...).Into(resp)

	return resp, meta, err
}

func (req *SubDeviceList) Invoke(c github_com_go_courier_courier.Client, metas ...github_com_go_courier_courier.Metadata) (*SubDeviceListResp, github_com_go_courier_courier.Metadata, error) {
	return req.InvokeContext(context.Background(), c, metas...)
}
